home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / bootpicturetools / bootscreen / bootscreen.doc < prev    next >
Text File  |  1996-04-07  |  20KB  |  449 lines

  1.  
  2. BOOTSCREEN
  3. ~~~~~~~~~~
  4. Startup screen program for Amigas with Workbench Release 2.04 or higher.
  5.  
  6.  
  7. Copyright ©1994 by Joseph Luk.  All rights reserved.
  8.  
  9. ----------------------------------------------------------- MAIN DOCUMENTATION
  10.  
  11. $VER: 2.2 (3/4/94)
  12. UNREGISTERED VERSION
  13.  
  14.  
  15. Introduction
  16. ~~~~~~~~~~~~
  17.    Some time ago, I downloaded a cute little utility called "BootPic" (no
  18. 'K' at the end).  This addessed the fact that under OS 2.0 and greater, you
  19. are treated to a blank screen until the Workbench comes up -- very boring and
  20. annoying in that you can't confirm whether or not you're going through a
  21. normal boot sequence.  Correcting the problem, "BootPic" displayed a mock
  22. "Windows" startup screen until the Workbench came up.  The only problem was
  23. that this screen was hard-coded in the program, and the extra-tall PAL screen
  24. and incorrect version number couldn't be corrected.  The author said
  25. that he would probably not add IFF support in the future.
  26.  
  27.    Enter BootScreen.  My program is smaller, loads an IFF picture, and
  28. also supports AGA 24-bit palettes.
  29.  
  30. Features
  31. ~~~~~~~~
  32.    * Highly user-friendly.  Package provides Install scripts for operations
  33.      beyond installation.  Configuration is standardized and extremely
  34.      easy to use.
  35.    * Takes advantage of advanced hardware and software (full AGA support).
  36.    * Highly efficient boot-time operation for maximum speed.
  37.    * Maximum flexibility of monitor and screen mode selection.
  38.  
  39.  
  40. Requirements
  41. ~~~~~~~~~~~~
  42.    * Amiga with Workbench 2.04 (V37 intuition and graphics library) or better
  43.      installed.  Note that previous versions of BootScreen failed under 2.04;
  44.      this was a bug and is now fixed.
  45.    * Hard disk highly recommended.
  46.  
  47.    
  48.  
  49. Running the program
  50. ~~~~~~~~~~~~~~~~~~~
  51.    Several extremely friendly install scripts are provided.  They are for
  52. Commodore's standard Installer program, which comes on your system disks.
  53. You must have the Installer in one of the path directories (C: is the
  54. recommended location).  The scripts provide extensive on-line help which
  55. I spent much time writing, and it would be to your advantage to read the
  56. help texts.
  57.  
  58.    For first-time installations, simply run the "Install" script.  Don't
  59. worry about what will happen if you don't like the program, since the
  60. "Remove" script will quickly and easily get rid of all the things "Install"
  61. has set up.
  62.  
  63.    If you are upgrading from an older version of BootScreen, run the
  64. "Upgrade" script.  It will remove old files so that you can perform the
  65. regular installation.
  66.  
  67.    The "Remove" script completely undoes all changes made by "Install",
  68. except by default it does not remove iff.library.  I recommend that you keep
  69. this library installed anyway, since many programs use it.
  70.  
  71.  
  72.    Go ahead and fire up the Install script!  When you've got that done,
  73. the only noticable change in your system will be a new Preferences editor
  74. in the Prefs drawer: BootScreen.
  75.  
  76.  
  77. Editor Usage
  78. ~~~~~~~~~~~~
  79.    The BootScreen Preferences Editor supports the standard interface that
  80. all the other editors use.  The one exception is that it does not currently
  81. support preset files, but the settings aren't very complex so there's little
  82. need for them.  Most of the menu choices should be familiar to anyone who
  83. has used the standard system Preferences editors.
  84.  
  85.    To specify which picture you want to display at startup, either type the
  86. name in the string gadget, or click on the "GetFile" gadget to its left.
  87. That will bring up a standard system requester and allow you to select the
  88. picture.
  89.  
  90.    The other gadgets' functions are as follows:
  91.    
  92.    MONITOR
  93.       Under Workbench 3.0 and above, many people use the "mode promotion"
  94.       feature.  This does not become active until midway through the startup,
  95.       meaning at the beginning, screens will always be displayed in the
  96.       default mode, NTSC in America and PAL in Europe.  However, when
  97.       mode promotion becomes active, screens that have not been specifically
  98.       opened in NTSC or PAL get promoted.
  99.       
  100.       It is easy to see the effect this produces by selecting a DEFAULT
  101.       monitor, saving, and re-booting.  If you have mode promotion turned
  102.       on, midway through the startup the screen will re-sync to the higher
  103.       mode.  You can avoid this by selecing the appropriate default
  104.       monitor (NTSC or PAL).  Then, your startup screen will not be promoted
  105.       because it is actually requesting a specific monitor.
  106.       
  107.       I personally keep Monitor set on DEFAULT because I don't mind the
  108.       re-syncing, and feel that the scan-doubled image looks a lot better.
  109.       It's a personal preference, and I left the choice up to you.
  110.       
  111.       The Monitor setting has no noticable effect under Workbench 2.x, which
  112.       does not support mode promotion.
  113.       
  114.       Position  Effect
  115.       -----------------------------------------------------------------------
  116.       DEFAULT   System chooses best monitor.  Can cause re-syncing if mode 
  117.                 promotion is turned on.
  118.       NTSC      Program requests NTSC monitor.  Will fail if unavailable.
  119.       PAL       Program requests PAL monitor.  Will fail if unavailable.
  120.       BYPASS    Program requests whatever monitor the picture was saved with.
  121.                 This *can* allow you to use DblPAL, Super72, etc with your
  122.                 startup screen pictures.  Read the technical article on
  123.                 "Alternate Modes and Early Monitor Loading" for more
  124.                 information.  This setting is not recommended for normal
  125.                 use.
  126.                                 
  127.       
  128.    CENTER PICTURE?
  129.       This tells BootScreen to automatically center the picture on the
  130.       display.  It allows you to save file space and boot time by
  131.       using brushes rather than full pictures for your startup screens.
  132.       
  133.       If BootScreen's centering is not to your liking, you can always
  134.       disable it and center your graphic manually within your paint program.
  135.       
  136.       
  137.    SAVE
  138.       Sáves the current configuration.  Note that the configuration is
  139.       saved into the icon's ToolTypes.  I figured that you've probably got
  140.       a cluttered enough hard disk already, and another confiuration file
  141.       is only going to be a pain.  The only downside to the method of
  142.       using the icon as a config file is that you must not delete the icon,
  143.       and you cannot use the ToolTypes for your own stuff (e.g., "Icon by"
  144.       texts or parenthesized comments).
  145.       
  146.    TEST
  147.       Displays the picture.  If screen centering is on, some of the Workbench
  148.       may be shown in the back.  This is normal; in actual use, the picture
  149.       will be centered on its own background.  Click in the picture to
  150.       finish viewing.
  151.       
  152.    CANCEL
  153.       Quits without saving changes.
  154.       
  155.       
  156.  
  157.  
  158. That's all you need to know to use BootScreen!  Once again, please note
  159. that BootScreen 2.2 is now ShareWare, and you are required by law to send
  160. in a donation of at least $5 if you use the program beyond the one-month
  161. trial period.  I'm not trying to make money off you, I'm trying to recoup
  162. the expenses of coding up this project.  And I'm trying to meet minor
  163. expenses; I'm a high school student who stayed up a little later each
  164. night after homework to work on this project.  Cheap groveling: please
  165. reward me for my efforts.
  166.  
  167. The remainder of this document will be devoted to technical articles about
  168. how the BootScreen system works, and what changes you are and are not allowed
  169. to make.  Trust me, you can live a happy, full life without reading it.  :>
  170.  
  171.  
  172. The Files
  173. ~~~~~~~~~
  174.    There is a large array of programs in this archive, most of which are
  175.    custom-coded for the Install scripts.  Only three programs actually
  176.    comprise the BootScreen system:
  177.  
  178.    bin/c/BootScreen       Main BootScreen program.  This what is loaded at
  179.                           boot-time and displays the picture.
  180.    
  181.    bin/c/BootScreenClose  This is the so-called "close daemon" which performs
  182.                           the task of closing down the startup screen when
  183.                           it is no longer needed.
  184.                           
  185.    bin/Prefs/BootScreen   Preferences editor.
  186.    
  187.  
  188. Why So Many?
  189. ~~~~~~~~~~~~
  190.    This is the question that's probably burning in your mind: "Why the heck
  191.    is he using a 'close daemon'?"  I could easily compile BootScreen to
  192.    automatically stay resident until it needs to close its screen, but I
  193.    didn't.  Why?  The main reason is that I wanted to fully optimize your
  194.    boot time.  If I used the method of staying resident (equivalent to the
  195.    old way BootScreen was run, with RUN >NIL:), the program would immediately
  196.    quit and the startup-sequence would continue onto the next command.  That
  197.    sounds great, but there is a problem.  While BootScreen is loading its
  198.    IFF picture, the startup-sequence would be loading the next command.  This
  199.    simultaneous tug-of-war for the disk drive causes DOS to shuffle the head
  200.    back and forth supplying the startup-sequence and BootScreen with little
  201.    bits of the files they want at a time.  As a consequence, most of the
  202.    time is simply wasted with the head moving from place to place, rather
  203.    than reading data.  Not only that, it really causes unncessecary wear
  204.    and tear on your hard disk head servos.
  205.    
  206.    Enter the solution.  Instead of returning control to the startup-sequence
  207.    immediately, BootScreen loads the IFF picture, then it launches a seperate
  208.    program responsible for closing the screen.  Only after that is finished,
  209.    does it allow the startup-sequence to continue.  The speed gains may
  210.    be negligible for small pictures, but if you try displaying a HAM8
  211.    picture you'll immediately see the advantage -- as well as hear it; hard
  212.    disk heads make noise when they seek!
  213.    
  214.    The only real disadvantage with this setup is that you've got an extra
  215.    program on your hard disk.  I believe this is not a problem, but you must
  216.    remember never to run the BootScreenClose daemon yourself.  At the
  217.    current time, its only function is to get a lock on the frontmost
  218.    screen, and wait until it is shoved to the back, at which time it closes
  219.    it.  Needless to say, this can cause disastrous results if you try it
  220.    on your Workbench screen.  BootScreen will automatically run the close
  221.    daemon on its own, so you will never have to (and should never) touch it.
  222.    
  223.    Ideally, I'd like to make the close daemon internal to BootScreen, so   
  224.    that the danger of accidental execution won't exist.  However, I tried
  225.    for several agonizing weeks to get my program to spawn a new task and
  226.    then quit, without having its cleanup code deallocate the task.  There's
  227.    probably some way to do it, and I'd appreciate any hints anyone can
  228.    give me in that direction (here's a hint from me, cback.o is not a 
  229.    solution).
  230.    
  231.    
  232. Mode Selection
  233. ~~~~~~~~~~~~~~
  234.    As mentioned before, the only monitor available when you boot up is
  235.    your default montor, NTSC for American machines and PAL for European
  236.    ones.  This means that trying to open a screen at boot-time that
  237.    is for another monitor, such as Super72 or DblNTSC, will always fail.
  238.    To avoid this problem, BootScreen automatically thows away the upper
  239.    16 bits of the picture's DisplayID -- the monitor specification,
  240.    and replaces it with NTSC, PAL, or nothing, depending on your selection
  241.    of the MONITOR gadget.
  242.    
  243.    Please note that BootScreen does not add monitors to the system or
  244.    mess with the scan rates; selecting NTSC on a PAL system or PAL on
  245.    an NTSC system will only cause the display to fail (unless you had
  246.    already loaded a PAL monitor driver, of course).
  247.    
  248.    I mentioned this just so you'll understand why sometimes your pictures
  249.    come out distorted or in the wrong resolution.  Saving the pictures
  250.    in NTSC or PAL will help ensure that the resolution that they're
  251.    displayed in at boot time will be the same as the one they're saved
  252.    in.
  253.  
  254.  
  255. Alternate Modes and Early Monitor Loading
  256. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  257.    Note: This procedure will only work under Workbench 2.1 or greater.  2.04
  258.          uses script files to load its monitors, a radically different
  259.          approach from what is given here.  This will be mainly useful for
  260.          owners of AGA/3.0 systems anyway.
  261.  
  262.    Under normal use, BootScreen is restricted to NTSC or PAL monitors because
  263.    those are the only ones available at the early time that BootScreen is
  264.    usually run.  However, it is possible to load a "monitor" (the software
  265.    file that resides in DEVS:Monitors -- the driver) earlier than normal, 
  266.    allowing BootScreen to use exotic modes.  To facilitate this I have
  267.    included the "BYPASS" option as of version 2.2; its function will be
  268.    covered in detail shortly.
  269.    
  270.    The key to loading monitors early lies in understanding that the "monitor"
  271.    driver is actually an executable program.  This means you can run them from
  272.    a CLI, a script file, or even your startup-sequence.  All you need to do
  273.    in order to load a monitor "before its time" is issue a command such as
  274.    this one, before the BootScreen line in your startup-sequence:
  275.    
  276.    RUN >NIL: DEVS:Monitors/DblNTSC
  277.    
  278.    This will load the monitor, and its modes will be available for programs
  279.    to use.
  280.    
  281.    There is a very important disadvantage to doing this, which you should
  282.    understand before proceeding.  Under Workbench 3.1 (this also applies to
  283.    Workbench 3.0 users who have installed the Commodore 3.1 [A1942] kit
  284.    available from Aminet), Overscan preferences allows you to center the
  285.    screen on the display using the arrows.  By loading a monitor early, before
  286.    IPrefs, you invalidate that feature.  If the default centering is fine for
  287.    you anyway, then you have nothing to worry about; else, you might want to
  288.    consider using the FreeWare utility MonEd to edit your monitor drivers.
  289.    Then screen centering will be determined by the drivers themselves, rather
  290.    than IPrefs.  Theoretically this should solve your problems (you must
  291.    also make sure to reset Overscan preferences when you're done); however,
  292.    I have not tried the procedure.
  293.    
  294.    If you would still like to try out those exotic modes, all you need to do
  295.    is insert the appropriate monitor command before the BootScreen line, then
  296.    choose the "BYPASS" monitor option in BootScreen Preferences.  "BYPASS"
  297.    will cause BootScreen to request the monitor ID contained in the picture
  298.    (as opposed to DEFAULT, where BootScreen discards the ID).  That means
  299.    if you save the picture out of DPaint in a DblNTSC mode, for example,
  300.    you'll get a DblNTSC boot screen, provided you have loaded DblNTSC monitor
  301.    driver first.  Same applies for DblPAL, Super72, etc.
  302.    
  303.    Sometimes it's not always convenient to edit your IFF files and such
  304.    just to change the monitor.  I'm planning a utility that will easily allow
  305.    you to edit the monitor IDs contained in your pictures; this will probably
  306.    be provided in the registered package (no guarantees, however -- this
  307.    depends on how much schoolwork I get over the next couple of weeks).  Just
  308.    another incentive to register.  ;>
  309.  
  310.  
  311. The Install Procedure
  312. ~~~~~~~~~~~~~~~~~~~~~
  313.    Wouldn't it be nice if all programs had three Install scripts for
  314.    Install, Remove (UnInstall), and Upgrade?
  315.    
  316.    Anyway, I wrote several programs which handle the task of kneading
  317.    s:startup-sequence for various purposes.  I'm sure they could be
  318.    more easily written in ARexx, so if anyone's interested, let me know!
  319.    
  320.    Here's basically what the Install script does.  If you choose to do
  321.    the installation yourself, you will need to duplicate these
  322.    operations.
  323.    
  324.       * Copy bin/c/BootScreen to C:
  325.       * Copy bin/c/BootScreenClose to C:
  326.       * Copy SampleScreens to SYS:Prefs/Presets ALL
  327.       * Copy bin/Prefs/BootScreen to SYS:Prefs
  328.       * Install proper icon for Preferences Editor (MagicWB, STD, etc)
  329.       * Edit s:startup-sequence.  It searches for a line that is not
  330.         a comment and contains the string "SetPatch", and appends after
  331.         that:
  332.         
  333.         ; BootScreen ©1994 by Joseph Luk
  334.         BootScreen
  335.         
  336.         
  337.    Of all of these operations, probably the only one you will ever have
  338.    to mess with is the startup-sequence modification.  If you have
  339.    things like multiple-startup pickers that should come before BootScreen,
  340.    or a non-standard startup where the SetPatch line may not be present,
  341.    you can move the BootScreen command elsewhere in the script.  Make sure
  342.    to retain the comment, as other scripts depend on that to locate the
  343.    modification.
  344.    
  345.    If the Install script could not find a line in your startup-sequence
  346.    that had SetPatch in it, it will add the BootScreen modification at the
  347.    end of the file.  Obviously this is not acceptable, and you should move
  348.    the lines to a proper location.  What are you doing with a startup-sequence
  349.    that doesn't have SetPatch??
  350.    
  351.    
  352.    
  353.    
  354. Final Words
  355. ~~~~~~~~~~~
  356.    I hate to keep banging you over the head with this, but this is my
  357.    first ShareWare release and I'd like for it to be a rewarding experience..
  358.  
  359.  
  360.    
  361.    
  362. Contacting Me  
  363. ~~~~~~~~~~~~~
  364. I love getting mail!  You don't have to be a registered user to report bugs or
  365. send a postcard!  :>
  366.  
  367. Joseph Luk
  368.  
  369. Internet: jluk@ctp.org
  370. GEnie: J.LUK
  371.  
  372. S-mail: P.O. Box 884401, San Francisco, CA 94188-4401  U.S.A.
  373.  
  374.  
  375.  
  376. REGISTRATION
  377. ~~~~~~~~~~~~
  378.    When you register, you will receive a disk containing the latest version
  379.    of BootScreen, and it will be a personalized version just for you.  Also on
  380.    the disk will be as many sample pictures as will fit, and perhaps a utility
  381.    or two that might be relevant to BootScreen.
  382.    
  383.    
  384.    The registration levels are as follows:
  385.    
  386.    $5    Basic registration.  This is a small amount of money!!!  This
  387.          covers the registered version of the disk and U.S. postage
  388.          ONLY.  For International orders, add $5 U.S. to any order.
  389.          
  390.    $10   Uprgade registration.  Will get you upgrade notices in the
  391.          mail for one year and significant discounts on upgrades.  Will
  392.          also get you my personal approval as well as notices for other
  393.          products by myself.  :>
  394.          
  395.    $11+  If you choose to send additional cash or other gifts (even
  396.          a postcard will be cherished), we can arrange specific rewards.
  397.          I might even consider that 020 version.  :>
  398.          
  399.          
  400.    
  401.    To register, fill out the following form and mail it to me, along with
  402.    a check or money order made out for the amount you wish to donate.
  403.    
  404.    
  405.    BOOTSCREEN 2.2 REGISTRATION
  406.    
  407.    
  408.    Date _________________
  409.    
  410.    
  411.    Full name ________________________________________________________________
  412.    
  413.    
  414.    Address __________________________________________________________________
  415.            
  416.            __________________________________________________________________
  417.            
  418.            __________________________________________________________________
  419.            
  420.            
  421.    Telephone # ______________________
  422.    
  423.    
  424.    E-mail address(es) _______________________________________________________
  425.                       
  426.                       _______________________________________________________
  427.                       
  428.                       
  429.    
  430.                             Registration Amount    ________
  431.    Check if International postage required [  ]  +    $5.00
  432.    
  433.                            Total Amount Sent       ________
  434.    
  435.    
  436.    --
  437.    
  438.    Mail to:
  439.    
  440.    Joseph Luk
  441.    P.O. Box 884401
  442.    San Francisco, CA 94188-4401
  443.    U.S.A.
  444.    
  445.    Your disk will be mailed within four weeks.  You may check with me via
  446.    e-mail as to the status of your order, if you so choose.
  447.    
  448.    THANK YOU!!!!
  449.